﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Box.BL;
using Microsoft.Practices.Unity;

namespace Box.Cliente.Ventas
{
    public partial class frmClientes : System.Web.UI.Page
    {
        [Dependency]
        public IClienteBL clienteBL { get; set; }       
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                var accion = Request.QueryString["acc"];
                var id = Request.QueryString["id"];

                if (accion == null)
                {
                    Response.Redirect("frmListClientes.aspx");
                }
                else if (accion=="editar")
                {
                    var identificador = Int32.Parse(id);

                    var cliente = clienteBL.GetFromClientesById(identificador);
                    txtRuc.Text = cliente.RucCliente;
                    txtTelefono.Text = cliente.TelefonoCliente;
                    txtEmail.Text = cliente.CorreoCliente;
                    txtTelefonoCasa.Text = cliente.TelefonoCasa;
                    txtDireccionEmpresa.Text = cliente.DireccionEmpresa;
                    txtOrganizacion.Text = cliente.Organizacion;
                    txtDireccion.Text = cliente.DireccionCliente;
                    txtNombre.Text = cliente.NombreCliente;
                }
                else if (accion.Equals("eliminar"))
                {

                }

            }
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            var accion = Request.QueryString["acc"];

            var cliente = new Box.Entities.Cliente()
            {
                NombreCliente = txtNombre.Text,
                RucCliente = txtRuc.Text,
                CorreoCliente = txtEmail.Text,
                DireccionCliente = txtDireccion.Text,
                TelefonoCliente = txtTelefono.Text,
                TelefonoCasa = txtTelefonoCasa.Text,
                Organizacion = txtOrganizacion.Text,
                DireccionEmpresa = txtDireccionEmpresa.Text

            };
            if (accion == "nuevo")
            {
                if (txtNombre.Text != string.Empty)
                {
                    if (txtDireccion.Text != string.Empty)
                    {
                        if (txtRuc.Text != "")
                        {
                            clienteBL.AddCliente(cliente);
                            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Registro Correcto')", true);
                            Response.Redirect("frmListClientes.aspx");
                        } ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('RUC de Cliente no valido.')", true);
                    } ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Dirección de Cliente no valido.')", true);
                    
                } ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Nombre de Cliente no valido.')", true);
            }
            else if (accion == "editar")
            {
                cliente.Id = Int32.Parse(txtId.Text);
                if (txtNombre.Text != string.Empty)
                {
                    if (txtDireccion.Text != string.Empty )
                    {
                        if (txtRuc.Text != "")
                        {
                            clienteBL.UpdateCliente(cliente);
                            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Actulización Correcta')", true);
                            Response.Redirect("frmListClientes.aspx");

                        } ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('RUC de Cliente Incorrecto')", true);

                    } ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Dirección de Cliente no valida')", true);
                    
                } ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Nombre de Cliente no Valido')", true);


            }
        }
    }
}